
package cn.rslee.demo.spring.jpa.repository;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import cn.rslee.demo.spring.jpa.entity.AccessLog;

/**
 * 描述：
 * 
 * <pre>HISTORY
 * ****************************************************************************
 *  ID   DATE                   PERSON          REASON
 *  1    2016年2月19日      rslee               Create
 * ****************************************************************************
 * </pre>
 *  基于Specifications 机制实现的动态查询方法
 *  
 *  参考链接：
 *  http://docs.jboss.org/hibernate/jpamodelgen/1.0/reference/en-US/html_single/#whatisit
 *  
 * 
 * @author rslee
 * @since 1.0
 */
public interface AccessLogCustomerRepository extends JpaRepository<AccessLog, Long>,JpaSpecificationExecutor<AccessLog> {
	
	/** 
	 * @param spec
	 * @param pageable
	 * @return
	 * @see org.springframework.data.jpa.repository.JpaSpecificationExecutor#findAll(org.springframework.data.jpa.domain.Specification, org.springframework.data.domain.Pageable)
	 *
	 *基于Specification分页查询方法。通过Specification对象，你可以动态构建查询条件
	 */
	Page<AccessLog> findAll(Specification<AccessLog> spec,Pageable pageable);
	
	List<AccessLog> findAll(Specification<AccessLog> spec);
	
}
